package com.blrs.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.blrs.common.core.domain.BaseEntity;
import com.blrs.common.core.domain.entity.SysDept;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.blrs.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotNull;

/**
 * 资质产品管理对象 qualification_info
 * 
 * @author ruoyi
 * @date 2023-08-07
 */
public class QualificationInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 产品类别 */
    @Excel(name = "产品类别",dictType ="product_type",comboDictType = "product_type",sort = 2 )
     private String productType;

    /** 产品编号 */
    @Excel(name = "产品编号",sort = 5)
    @NotNull(message = "产品编号不能为空")
    private String productNo;

    /** 产品名称 */
    @Excel(name = "产品名称",sort = 6)
    @NotNull(message = "产品名称不能为空")
    private String productName;

    /** 产品定价 */
    private String productPrice;

    /** 产品销价 */
    private BigDecimal productSellPrice;

    /** 产品状态，默认为0，1为上架，2为下架 */
    @Excel(name = "产品状态",sort = 3)
    private String productStatus;

    private String productStatusName;

    public String getProductStatusName() {
        return productStatusName;
    }

    public void setProductStatusName(String productStatusName) {
        this.productStatusName = productStatusName;
    }

    /** 外协id */
    private String enterpriseId;

    /** 产品介绍 */
    @Excel(name = "产品介绍")
    @NotNull(message = "不能为空")
    private String productRemark;

    /** 执行标准 */
    private String exeStandard;

    /** 样板 */
    private String template;

    /** 操作人id */
    private Long operateId;

    /** 部门id */
    private Long departmentId;

    /** 机构id */
    private Long organizationId;

    /** 部门名称 */
    private String departmentName;

    /** 机构id */
    private String organizationName;

    /** 创建时间 */
//    @Excel(name = "创建时间",width = 30, dateFormat = "yyyy-MM-dd")
//    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间",width = 30, dateFormat = "yyyy-MM-dd",sort = 10)
    private Date creationTime;

    /** 修改时间 */
    private Date operateTime;

    /**
     * 执行标准附件
     */
    private String exeStandardUrl;

    /**
     *  样板附件
     */
    private String templateUrl;

    /**
     * 外协名称
     */
    private String enters;

    private Long createId;
    @Excel(name = "查询网址",sort = 9)
    private String selectUrl;
    @Excel(name = "创建人",sort = 10)
    private String userName;

    //发布时间
    @Excel(name = "发布时间",width = 30, dateFormat = "yyyy-MM-dd",sort = 1)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "不能为空")
    private Date releaseTime;
    @Excel(name = "发证机构",sort = 8)
    @NotNull(message = "发证机构不能为空")
    private String certificateInstitution;

    private String idPath;


    //审核状态
    @Excel(name = "审核状态")
    private String examineStatus;

    private Integer isChange=0;

    private String endReason;

    /**
     * 自身所有产品编号
     * @return
     */
    private List<String> productNos;

    /**
     * 产品所属企业相关信息
     * @return
     */
    private SysDept sysDept;

    /**
     * 统一编号
     * @return
     */
    private String unifiedNo;


    /**
     * 细分分类
     * @return
     */
    @Excel(name = "细分分类",dictType ="product_segmentation_classification",comboDictType = "product_segmentation_classification" )
    private String productSegmentationClassification;

    //审批，两种状态，未审批和已审批
    private Integer approve;
    //产品规格
    @Excel(name = "产品规格")
    @NotNull(message = "产品规格不能为空")
    private String productSpecs;
    //产品手册
    private String productManual;

    /**
     * 供应商产品
     */
    private String supplierProduct;

    /**
     * 供应商产品id
     * @return
     */
    private String supplierProductId;

    private List<SupplierProduct> supplierProductList;

    public List<SupplierProduct> getSupplierProductList() {
        return supplierProductList;
    }

    public void setSupplierProductList(List<SupplierProduct> supplierProductList) {
        this.supplierProductList = supplierProductList;
    }

    public String getSupplierProduct() {
        return supplierProduct;
    }

    public void setSupplierProduct(String supplierProduct) {
        this.supplierProduct = supplierProduct;
    }

    public String getSupplierProductId() {
        return supplierProductId;
    }

    public void setSupplierProductId(String supplierProductId) {
        this.supplierProductId = supplierProductId;
    }

    public String getProductSegmentationClassification() {
        return productSegmentationClassification;
    }

    public void setProductSegmentationClassification(String productSegmentationClassification) {
        this.productSegmentationClassification = productSegmentationClassification;
    }

    public String getUnifiedNo() {
        return unifiedNo;
    }

    public void setUnifiedNo(String unifiedNo) {
        this.unifiedNo = unifiedNo;
    }

    public SysDept getSysDept() {
        return sysDept;
    }

    public void setSysDept(SysDept sysDept) {
        this.sysDept = sysDept;
    }

    public List<String> getProductNos() {
        return productNos;
    }

    public void setProductNos(List<String> productNos) {
        this.productNos = productNos;
    }

    public String getEndReason() {
        return endReason;
    }

    public void setEndReason(String endReason) {
        this.endReason = endReason;
    }

    public Integer getIsChange() {
        return isChange;
    }

    public void setIsChange(Integer isChange) {
        this.isChange = isChange;
    }

    public String getExamineStatus() {
        return examineStatus;
    }

    public void setExamineStatus(String examineStatus) {
        this.examineStatus = examineStatus;
    }

    public String getIdPath() {
        return idPath;
    }

    public void setIdPath(String idPath) {
        this.idPath = idPath;
    }


    public String getProductSpecs() {
        return productSpecs;
    }

    public void setProductSpecs(String productSpecs) {
        this.productSpecs = productSpecs;
    }

    public String getProductManual() {
        return productManual;
    }

    public void setProductManual(String productManual) {
        this.productManual = productManual;
    }

    public Integer getApprove() {
        return approve;
    }

    //树节点id
    private String classificationId;

    public String getClassificationId() {
        return classificationId;
    }

    public void setClassificationId(String classificationId) {
        this.classificationId = classificationId;
    }

    public void setApprove(Integer approve) {
        this.approve = approve;
    }

    public String getCertificateInstitution() {
        return certificateInstitution;
    }

    public void setCertificateInstitution(String certificateInstitution) {
        this.certificateInstitution = certificateInstitution;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getCreateId() {
        return createId;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public String getSelectUrl() {
        return selectUrl;
    }

    public void setSelectUrl(String selectUrl) {
        this.selectUrl = selectUrl;
    }

    public String getEnters() {
        return enters;
    }

    public void setEnters(String enters) {
        this.enters = enters;
    }

    public String getExeStandardUrl() {
        return exeStandardUrl;
    }

    public void setExeStandardUrl(String exeStandardUrl) {
        this.exeStandardUrl = exeStandardUrl;
    }

    public String getTemplateUrl() {
        return templateUrl;
    }

    public void setTemplateUrl(String templateUrl) {
        this.templateUrl = templateUrl;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setProductType(String productType) 
    {
        this.productType = productType;
    }

    public String getProductType() 
    {
        return productType;
    }
    public void setProductNo(String productNo) 
    {
        this.productNo = productNo;
    }

    public String getProductNo() 
    {
        return productNo;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public String getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(String productPrice) {
        this.productPrice = productPrice;
    }

    public void setProductSellPrice(BigDecimal productSellPrice)
    {
        this.productSellPrice = productSellPrice;
    }

    public BigDecimal getProductSellPrice() 
    {
        return productSellPrice;
    }
    public void setProductStatus(String productStatus) 
    {
        this.productStatus = productStatus;
    }

    public String getProductStatus() 
    {
        return productStatus;
    }
    public void setEnterpriseId(String enterpriseId) 
    {
        this.enterpriseId = enterpriseId;
    }

    public String getEnterpriseId() 
    {
        return enterpriseId;
    }
    public void setProductRemark(String productRemark) 
    {
        this.productRemark = productRemark;
    }

    public String getProductRemark() 
    {
        return productRemark;
    }
    public void setExeStandard(String exeStandard) 
    {
        this.exeStandard = exeStandard;
    }

    public String getExeStandard() 
    {
        return exeStandard;
    }
    public void setTemplate(String template) 
    {
        this.template = template;
    }

    public String getTemplate() 
    {
        return template;
    }
    public void setOperateId(Long operateId) 
    {
        this.operateId = operateId;
    }

    public Long getOperateId() 
    {
        return operateId;
    }
    public void setDepartmentId(Long departmentId) 
    {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() 
    {
        return departmentId;
    }
    public void setOrganizationId(Long organizationId) 
    {
        this.organizationId = organizationId;
    }

    public Long getOrganizationId() 
    {
        return organizationId;
    }
    public void setDepartmentName(String departmentName) 
    {
        this.departmentName = departmentName;
    }

    public String getDepartmentName() 
    {
        return departmentName;
    }
    public void setOrganizationName(String organizationName) 
    {
        this.organizationName = organizationName;
    }

    public String getOrganizationName() 
    {
        return organizationName;
    }
    public void setCreationTime(Date creationTime) 
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() 
    {
        return creationTime;
    }
    public void setOperateTime(Date operateTime) 
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime() 
    {
        return operateTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productType", getProductType())
            .append("productNo", getProductNo())
            .append("productName", getProductName())
            .append("productPrice", getProductPrice())
            .append("productSellPrice", getProductSellPrice())
            .append("productStatus", getProductStatus())
            .append("enterpriseId", getEnterpriseId())
            .append("productRemark", getProductRemark())
            .append("exeStandard", getExeStandard())
            .append("template", getTemplate())
            .append("operateId", getOperateId())
            .append("departmentId", getDepartmentId())
            .append("organizationId", getOrganizationId())
            .append("departmentName", getDepartmentName())
            .append("organizationName", getOrganizationName())
            .append("creationTime", getCreationTime())
            .append("operateTime", getOperateTime())
            .toString();
    }
}
